package com.example.demo_customer;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestConfig {

    //将RestTemplate注册到spring容器中,便于SPRING其他类中使用
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    /**
     * 负载均衡算法
     * 请求将按照相应速度分别再 demo_server , demo_server2 来回切换
     * 不使用该规则情况,请求默认优先使用 PROVIDER --> status(provider1,provider2) 其中的provider1(即最早启动并注册的服务)
     * @return
     */
    @Bean
    public IRule ribbonRule() {
        return new RandomRule();
    }
}
